1. Field of the Invention
The invention relates generally to SAS expanders and more specifically relates to implementation of zoning in SAS expanders enhanced for Fast Context Switching (FCS) capability.
2. Discussion of Related Art
In a SAS environment, one or more SAS initiator devices are coupled with one or more SAS target devices through zero or more intermediate SAS expanders. In general, the collection of SAS expanders (that provide switchable connections between the various initiator and target devices) is referred to as a SAS Service Delivery Subsystem (SDS).
SAS standards provide a feature known as zoning in which zone group identifiers may be associated with each physical link (PHY) of a SAS expander and a zone permissions table may be utilized within the expander to indicate whether devices associated with a first zone group identifier may access devices associated with each other zone group identifier. This zoning feature permits enhanced flexibility in providing security in large enterprise applications where, for example, various individuals or departments of an enterprise may access certain devices in the SAS domain but cannot access other devices in the same domain.
In accordance with present SAS specifications, an open connection is initially established by a SAS initiator transmitting an Open Address Frame (OAF) through the SDS and receiving an acceptance (OPEN_ACCEPT primitive) from the identified SAS target device. The open request and acceptance are routed and passed through each SAS expander between the initiator and target. Once such a connection is established, all PHYs used for the connection by SAS expanders intermediate the initiator and target devices are essentially in a “pass-through” mode until DONE primitives and CLOSE primitives are exchanged between the devices (to thereby close the established connection). Once an expander senses that a previously established connection has been closed, it may again enter its state machine logic to await receipt of a next OAF to establish another connection.
In general, when zoning features are enabled in the SAS expanders, a zone group identifier is associated with a device requesting opening of a connection. That zone group identifier is then forwarded as part of the OAF to allow each expander to determine whether access to the identified SAS target device is permitted in accordance with the zoning configuration. Zone permissions are inspected at each expander to determine whether the zone group identifier associated with the initiator device requesting the connection is permitted to access the zone group identifier associated with the destination target device.
In initially establishing such a requested connection, SAS expanders intermediate the initiator and target devices acquire various resources within the expander to identify the requested connection and identify appropriate routing through PHYs of the expanders to establish and utilize the connection. When the SAS expander detects closure of a previously established connection, resources previously acquired for that connection are released for reuse to establish other connections within the expander.
In some recent developments, one vendor has proposed enhancements or extensions to the SAS protocols to allow multiple connections between a single initiator and multiple SAS target devices to remain open or established such that switching between connections may be performed by a faster switch operation rather than “tearing down” all resources by closing an established connection and re-opening another connection. For example, LSI Corporation proposes enhancements or extensions to the SAS protocols referred to as Fast Context Switching (FCS). An FCS enhanced SAS expander that is coupled to multiple SAS target devices is enhanced to maintain multiple established, open connections and to detect receipt of a new form of SAS frame that requests a fast context switch from the currently utilized, previously established connection to a another presently open, previously established connection. Thus, multiple established connections may remain open between a single SAS initiator and multiple SAS target devices and a new SAS frame (e.g., a SWITCH Address Frame—“SAF”) may be used to rapidly switch between previously established connections without incurring the overhead of “tearing down” and “setting up” each connection sequentially. In essence, the SAF is processed the same as an OAF if there is no presently established connection that may be re-used for the requested new connection. However, if another previously established connection may be re-used, the SAF processing avoids all the overhead processing of “tearing down” and “setting up” connections each time a new connection is requested.
A problem arises in such proposed FCS enhanced SAS expanders in that zoning information required to switch among previously established connections is not correctly passed through the SDS to allow proper determination of zone permissions. In particular, in normal SAS zoning processing, an initiator device transmits an OAF having a zone group identifier field set to zero. The first zoning SAS expander (i.e., first SAS expander within the Zoned Portion of a SAS Delivery Subsystem—ZPSDS) determines the appropriate, configured zone group identifier for the source PHY on which the OAF was received. This first SAS expander then modifies the received OAF to replace the zone group identifier with a predetermined, assigned zone group identifier. The modified OAF is then forwarded through the SDS to establish an appropriate route and connection through the SDS. This and subsequent expanders of the SDS may utilize the corrected zone group identifier to determine whether zone group permissions allow the requested connection. However, in accordance with SAS standards, once an open connection is established, all SAS expanders along the path between the initiator and target devices are in a bypass or pass-through mode essentially ignoring the content of information exchanged between initiator and target until the connection is closed. Thus, an SAF requesting a switch to another previously opened connection may not receive the same processing as an OAF to correct the zone group identifier. Thus, zoning and FCS enhancements have been incompatible.
Thus it is an ongoing challenge to provide mechanisms to combine FCS enhancements in combination with standard SAS zoning features.